home *** CD-ROM | disk | FTP | other *** search
/ IDT Product & Company Information 1996 Fall / IDT_INFO Fall 1996.iso / pc / atm_soft / nt_telog / nt_drvr / mxp.mst < prev    next >
Encoding:
Text File  |  1996-06-14  |  7.4 KB  |  311 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST APPHELP       = 900
  18. CONST CHECK            = 2500
  19. CONST BADPATH       = 6400
  20.  
  21. ''Bitmap ID
  22. CONST LOGO = 1
  23.  
  24. GLOBAL DEST$        ''Default destination directory.
  25. GLOBAL OPTCUR$      ''Option selection from option dialog.
  26.  
  27. DECLARE SUB Install
  28. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  29.  
  30.  
  31. INIT:
  32.     CUIDLL$ = "mxpsetup.dll"            ''Custom user interface dll
  33.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  34.  
  35.     SetBitmap CUIDLL$, LOGO
  36.     SetTitle "NICSTAR Setup"
  37.  
  38.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  39.     IF szInf$ = "" THEN
  40.         szInf$ = GetSymbolValue("STF_CWDDIR") + "MXP.INF"
  41.     END IF
  42.     ReadInfFile szInf$
  43.  
  44.     OPTCUR$ = "1"
  45.     DEST$ = "C:\NICSTAR"
  46.  
  47. '$IFDEF DEBUG
  48.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  49.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  50.     IF IsDriveValid(WinDrive$) = 0 THEN
  51.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  52.         GOTO QUIT
  53.     END IF
  54. '$ENDIF ''DEBUG
  55.  
  56.  
  57. WELCOME:
  58.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  59.     IF sz$ = "CONTINUE" THEN
  60.         UIPop 1
  61.     ELSE
  62.         GOSUB ASKQUIT
  63.         GOTO WELCOME
  64.     END IF
  65.  
  66.  
  67.  
  68. GETPATH:
  69.     SetSymbolValue "EditTextIn", DEST$
  70.     SetSymbolValue "EditFocus", "END"
  71. GETPATHL1:
  72.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  73.     DEST$ = GetSymbolValue("EditTextOut")
  74.  
  75.     IF sz$ = "CONTINUE" THEN
  76.         IF IsDirWritable(DEST$) = 0 THEN
  77.             GOSUB BADPATH
  78.             GOTO GETPATHL1
  79.         END IF
  80.         UIPop 1
  81.     ELSEIF sz$ = "REACTIVATE" THEN
  82.         GOTO GETPATHL1
  83.     ELSEIF sz$ = "BACK" THEN
  84.         UIPop 1
  85.         GOTO CHECKBOX 
  86.     ELSE
  87.         GOSUB ASKQUIT
  88.         GOTO GETPATH
  89.     END IF
  90.  
  91.  
  92. CHECKBOX:
  93.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  94.     CreateDir DEST$, cmoNone
  95.  
  96. ''     Check to see if the MXP Environment variable has been set before
  97.  
  98. ''    MXPENV$ = ENVIRON$("MXPDIR")
  99.  
  100. ''    IF MXPENV$ <> DEST$ THEN
  101.  
  102. ''     Add a path to the PATH variable in autoexec.bat
  103.  
  104. ''        PrependToPath "c:\autoexec.bat", "c:\autoexec.n12", DEST$ + "\BIN", cmoOverwrite
  105.  
  106. ''    Add an environment variable to the autoexec.bat
  107.  
  108.  
  109. ''        OPEN "c:\autoexec.m12" FOR OUTPUT AS #1
  110. ''        OPEN "c:\autoexec.bat" FOR INPUT AS #2
  111.  
  112. ''        present% = 0
  113. ''        WHILE not EOF (2)
  114. ''            LINE INPUT #2, oneline$
  115.  
  116. ''            IF INSTR (oneline$, "MXPDIR") <> 0 THEN
  117. ''                present% = 1
  118. ''                IF INSTR (oneline$, DEST$) <> 0 THEN
  119. ''                    overwrite% = 0
  120. ''                ELSE 
  121. ''                    overwrite% = 1
  122. ''                ENDIF
  123. ''                PRINT #1, "SET MXPDIR="+DEST$
  124. ''            ELSE
  125. ''                PRINT #1, oneline$
  126. ''            END IF
  127. ''        WEND
  128.  
  129. ''        CLOSE #1
  130. ''        CLOSE #2
  131.  
  132. ''        IF present% = 0 THEN
  133. ''            RemoveFile "c:\autoexec.m12", cmoNone
  134. ''            RemoveFile "c:\autoexec.mxp", cmoNone
  135. ''            RenameFile "c:\autoexec.bat", "autoexec.mxp"
  136. ''
  137. ''            OPEN "c:\autoexec.bat" FOR OUTPUT AS #1
  138. ''            OPEN "c:\autoexec.mxp" FOR INPUT AS #2
  139. ''
  140. ''            PRINT #1, "SET MXPDIR="+DEST$
  141. ''
  142. ''            WHILE not EOF(2)
  143. ''                LINE INPUT #2, oneline$
  144. ''                PRINT #1, oneline$
  145. ''            WEND
  146. ''
  147. ''            CLOSE #1
  148. ''            CLOSE #2
  149. ''
  150. ''        ELSEIF overwrite% = 1 THEN
  151. ''            RemoveFile "c:\autoexec.mxp
  152. ''            RenameFile "c:\autoexec.bat", "autoexec.mxp"
  153. ''            RenameFile "c:\autoexec.m12", "autoexec.bat"
  154. ''        ELSE
  155. ''            RemoveFile "c:\autoexec.m12", cmoNone
  156. ''        END IF
  157. ''
  158. ''    END IF
  159.  
  160.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  161.     WriteToLogFile ""
  162.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  163.     WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  164.     WriteToLogFile ""
  165.     WriteToLogFile "May have had to create the directory: " + DEST$
  166.     WriteToLogFile ""
  167.  
  168.         AddSectionFilesToCopyList "ROOT", SrcDir$, DEST$
  169.  
  170.     DestDir$ = DEST$ + "\driver"
  171.     CreateDir DestDir$, cmoNone    
  172.         AddSectionFilesToCopyList "DRIV", SrcDir$, DestDir$
  173.  
  174.     DestDir$ = DEST$ + "\transprt"
  175.     CreateDir DestDir$, cmoNone
  176.         AddSectionFilesToCopyList "TRANS", SrcDir$, DestDir$
  177.     
  178.     Install
  179.     GOTO QUIT
  180.  
  181.  
  182. CHECKL:
  183.     SetSymbolValue "CheckItemsIn", ""
  184. CHECKL1:
  185.     sz$ = UIStartDlg(CUIDLL$, CHECK, "FCheckDlgProc", APPHELP, HELPPROC$)
  186.     OPTCUR$ = GetListItem ("CheckItemsOut", 1)
  187.  
  188.     IF OPTCUR$ = "ON" THEN
  189. ''        Install_Com
  190.     END IF
  191.  
  192.     IF sz$ = "CONTINUE" THEN
  193.         UIPop(1)
  194.     ELSEIF sz$ = "REACTIVATE" THEN
  195.         GOTO CHECKL1
  196.     ELSE
  197.         GOSUB ASKQUIT
  198.         GOTO CHECKL 
  199.     END IF
  200.  
  201.     Install
  202.  
  203.  
  204.  
  205. QUIT:
  206.     ON ERROR GOTO ERRQUIT
  207.  
  208.     IF ERR = 0 THEN
  209.         dlg% = EXITSUCCESS
  210.     ELSEIF ERR = STFQUIT THEN
  211.         dlg% = EXITQUIT
  212.     ELSE
  213.         dlg% = EXITFAILURE
  214.     END IF
  215. QUITL1:
  216.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  217.     IF sz$ = "REACTIVATE" THEN
  218.         GOTO QUITL1
  219.     END IF
  220.     UIPop 1
  221.  
  222.     END
  223.  
  224. ERRQUIT:
  225.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  226.     END
  227.  
  228.  
  229.  
  230. BADPATH:
  231.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  232.     IF sz$ = "REACTIVATE" THEN
  233.         GOTO BADPATH
  234.     END IF
  235.     UIPop 1
  236.     RETURN
  237.  
  238.  
  239.  
  240. ASKQUIT:
  241.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  242.  
  243.     IF sz$ = "EXIT" THEN
  244.         UIPopAll
  245.         ERROR STFQUIT
  246.     ELSEIF sz$ = "REACTIVATE" THEN
  247.         GOTO ASKQUIT
  248.     ELSE
  249.         UIPop 1
  250.     END IF
  251.     RETURN
  252.  
  253.  
  254. '**
  255. '** Purpose:
  256. '**     Builds the copy list and performs all installation operations.
  257. '** Arguments:
  258. '**     none.
  259. '** Returns:
  260. '**     none.
  261. '*************************************************************************
  262. SUB Install STATIC
  263.  
  264.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  265.     CreateDir DEST$, cmoNone
  266.  
  267.     CopyFilesInCopyList
  268.  
  269. ''    ini$ = MakePath(DEST$, "MXP.INI")
  270.  
  271.  
  272.         CreateIniKeyValue "WIN.INI", "NICSTAR Program Group", "Created", "1" , cmoNone
  273.  
  274.         CreateProgmanGroup "NICSTAR Program Group", "", cmoNone
  275.            ShowProgmanGroup  "NICSTAR Program Group", 1, cmoNone
  276.             CreateProgmanItem "NICSTAR Program Group", "TN Utility", DEST$ + "\util.exe", "", cmoOverwrite
  277.  
  278.     RemoveFile DEST$ + "\driver\oemsetup.inf" , cmoForce
  279.     RenameFile DEST$ + "\driver\drioem.inf" , "oemsetup.inf"
  280.  
  281.     CloseLogFile
  282.  
  283. END SUB
  284.  
  285.  
  286.  
  287. '**
  288. '** Purpose:
  289. '**     Appends a file name to the end of a directory path,
  290. '**     inserting a backslash character as needed.
  291. '** Arguments:
  292. '**     szDir$  - full directory path (with optional ending "\")
  293. '**     szFile$ - filename to append to directory
  294. '** Returns:
  295. '**     Resulting fully qualified path name.
  296. '*************************************************************************
  297. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  298.     IF szDir$ = "" THEN
  299.         MakePath = szFile$
  300.     ELSEIF szFile$ = "" THEN
  301.         MakePath = szDir$
  302.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  303.         MakePath = szDir$ + szFile$
  304.     ELSE
  305.         MakePath = szDir$ + "\" + szFile$
  306.     END IF
  307. END FUNCTION
  308.  
  309.  
  310.  
  311.